Page({
  data: {
    currentDate: Date.now(),
    maxDate: Date.now() + 3 * 24 * 60 * 60 * 1000,
    dateLayerVisible: false,
    houseLayerVisible: false,
    houseList: [],
    // 访问房屋的名称
    houseInfo: '',

    houseId: '', // 访问房屋的id
    name: '', // 姓名
    gender: 1, // 性别
    mobile: '', // 手机
    visitDate: '', // 访问日期:3天以内的日期
  },

  onLoad() {
    // 获取房屋列表
    this.getHouseList()
  },

  async getHouseList() {
    // 请求数据接口
    const { code, data: houseList } = await wx.http.get('/house')
    // 检测接口返回的结果
    if (code !== 10000) return wx.utils.toast('获取房屋列表失败!')
    // 数据渲染
    this.setData({ houseList })
  },

  openHouseLayer() {
    this.setData({ houseLayerVisible: true })
  },
  closeHouseLayer() {
    this.setData({ houseLayerVisible: false })
  },

  selectHouse(ev) {
    // 获取房到的信息数据
    const { id: houseId, name: houseInfo } = ev.detail
    // 页面中渲染
    this.setData({ houseId, houseInfo })
  },

  openDateLayer() {
    this.setData({ dateLayerVisible: true })
  },
  closeDateLayer() {
    this.setData({ dateLayerVisible: false })
  },

  selectDate(ev) {
    // 获取访客来访的时间
    this.setData({
      // 隐藏时间弹层
      dateLayerVisible: false,
      visitDate: wx.utils.formatDate(ev.detail),
    })
  },

  // 点击确认按钮
  async goPassport() {
    const { houseId, name, mobile, visitDate, gender } = this.data
    // 1.1 校验
    if (!wx.utils.verifyHouse(houseId.trim())) return
    if (!wx.utils.verifyName(name.trim())) return
    if (!wx.utils.verifyMobile(mobile.trim())) return
    if (!wx.utils.verifyDate(visitDate.trim())) return

    // 1.2 调用接口
    const { code, data } = await wx.http.post('/visitor', {
      houseId,
      name,
      mobile,
      visitDate,
      gender,
    })
    if (code !== 10000) return wx.utils.toast('提交访客信息失败')
    // console.log(data)

    // 1.3 跳转
    // wx.redirectTo() // 干掉页面栈中当前页面对象
    // wx.reLaunch() // 干掉页面栈中所有的页面对象
    wx.reLaunch({
      url: `/visitor_pkg/pages/passport/index?id=${data.id}`,
    })
  },
})
